#pragma once
#include "IProc.h"
#include "RadProc.h"


class G1644FP101GF_SD5306 : public Iproc
{
public:
	virtual ~G1644FP101GF_SD5306() {};

	virtual int DemuraProcess(char* path, double* R, double* G, double* B, char* param);

private:
	typedef struct st_DemuraDLLConnector
	{
		//rawdata max buffer size should be 15*3000*1500*8 BYTE
		//RGB Gray: 32 64 128 192 224
		double* pRRawdata[5];  //input: red raw data //5x(563x2436) byte
		double* pGRawdata[5];  //input: green raw data //5x(1125*2436) byte
		double* pBRawdata[5];  //input: blue raw data //5x(563x2436) byte
		unsigned int unRawdataWidth[3]; //R/G/B rawdata width
		unsigned int unRawdataHeight[3]; //R/G/B rawdata height

		char* chDemuraDataPath; //input Demura Data path //"demuradata.hex"

		unsigned char* pucDemuraData; //output: demuradata + CRC(4byte) //input :buffer size : 1500*3000 byte
		unsigned int unDemuraDataLen; //output: demuradata length(include CRC 4byte)
		unsigned char* ucConfig; //input:DLL Config:SDDemuraProProcessConfig.bin

	}DemuraDLLCon, * pDemuraDLLCon;

};
//typedef std::shared_ptr<SDMicroProc> SDMicroProc_Ptr;